package co.yixiang.modules.mp.error;

import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.ErrorPageRegistrar;
import org.springframework.boot.web.server.ErrorPageRegistry;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;

/**
 * 自定义错误页面配置类
 * 实现了ErrorPageRegistrar接口，用于在Spring Boot中注册全局错误页面
 */
@Component
public class ErrorPageConfiguration implements ErrorPageRegistrar {
  /**
   * 注册自定义错误页面
   *
   * @param errorPageRegistry 错误页面注册器，用于添加或修改错误页面映射
   */
  @Override
  public void registerErrorPages(ErrorPageRegistry errorPageRegistry) {
    // 添加404错误页面映射，当出现NOT_FOUND状态时，重定向到/error/404页面
    // 添加500错误页面映射，当出现INTERNAL_SERVER_ERROR状态时，重定向到/error/500页面
    errorPageRegistry.addErrorPages(
        new ErrorPage(HttpStatus.NOT_FOUND, "/error/404"),
        new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500")
    );
  }

}
